1. Field of the Invention
This invention relates to communication networks. Specifically, the present invention relates to the architecture and operation of communication networks.
2. Description of the Prior Art
Modern voice communication networks are implemented with circuit-switched technology, packet-switched technology and wireless technology. Circuit-switched technology is the more conventional telephone technology in which a single path (i.e., circuit) is maintained between two communicating users. In packet-switched technology, packets take different paths between two communicating users. In wireless technology, air is used as the communication medium.
While each of these technologies may be implemented separately, in modern networks, these technologies are often integrated to enable end-to-end communications. For example, a user may use a conventional telephone connected to a circuit-switched technology to initiate a telephone call. The telephone call may initially traverse a conventional telephone network, such as the Public Switched Telephone Network (PSTN), and then crossover into a packet-switched network, such as an Internet protocol based network (i.e., Voice-Over-IP). In addition, each of these networks, the circuit-switched network and the packet-switched network, may provide the starting point for communication over a wireless network.
Circuit-switched networks have become a very stable technology. The foundational component of a circuit-switched network is the circuit switch. In a conventional circuit-switched network, the circuit switch and processors within the circuit switch are designed to be highly reliable. For example, software is written to manage failures in the circuit switch or congestion in the network. In addition, if there is a problem with the primary circuit switch, software techniques and procedures are implemented to transition to a backup circuit switch.
However, providing a stable circuit-switched network is expensive and complicated. Since the circuit switch is “wired” to a customer, it presents a single point of failure. In addition, the switch capacity is typically over engineered to avoid congestion, blocking or load-balancing problems in the network. Over engineering the network adds to the cost of providing service. Furthermore, if there is a disaster at the location that houses the circuit switch, service is disrupted and it is often very difficult to quickly restore service. Therefore, to provide a highly reliable solution, the locations that house these switches need to support backup power, diverse facility routes, etc. All of these issues add to the complexity and expense of the network.
In addition, maintenance of the circuit switch, such as software upgrades, has to be carefully implemented so that customers do not experience a disruption of service. The maintenance process typically consists of sequentially upgrading different parts of the network (i.e., switch-by-switch or processor-by-processor upgrade). Therefore, maintenance is typically performed at night, which also adds to the cost and complexity of operation.
As voice communications transition to packet networks, users will require the same reliability in packet networks as in the circuit-switched networks. Initially, the same approach was taken in packet-switched networks as in circuit-switched networks. Incredibly robust packet switches were implemented using robust processors so that should a failure occur, the failure could be managed. Many of these robust features were implemented using very complex, proprietary software algorithms and over-engineered hardware components.
As more commercial hardware and software became available, the robustness of the network was achieved by implementing redundant processors or redundant switches. For example, modern packet-switched networks are implemented using two softswitches (i.e., servers) each configured in a similar manner. The servers exchange status messages between each other. The status messages are referred to as a heartbeat. During configuration, one server is designated as the primary and a second server is designated as the secondary (i.e., backup). As such, should the primary fail, communications can be transitioned over to the secondary and the secondary would continue the communications. The two servers/processors are given a single Internet protocol address. Therefore, to the rest of the network, the two servers appear as one server. Proprietary software then controls the identification of a failure and the transition of a call during the failure. The proprietary software is located in each softswitch to detect the failure of the mated pair (i.e., partner exchanging heartbeat) and then take over call processing, if necessary. The mated pair typically must reside in the same physical location. In addition, power backup and a highly reliable data network is required for interconnection. Thus, additional costs are required to provide a reliable environment/solution for a two-server design implementing a heartbeat.
In addition to failures, maintenance needs to be carefully managed in a two-server (i.e., two-processor) design implementing a heartbeat. For example, when performing maintenance, the two processors must be synchronized. As a result, complex algorithms need to be implemented to make sure that the two processors are both upgraded in a synchronized manner. In addition, the maintenance or upgrades need to be performed so that service to users is not disrupted.
There are a number of shortcomings with the two-server (i.e., two-processor) design. For example, detecting a failure is often problematic and since the transition to the second processor occurs when there is a failure of the first processor, the system may not transition because of an inability to detect a failure of the first processor. In addition, there are a number of reasons why a processor may not respond to the heartbeat. For example, the processor may not receive the incoming call messages, the processor itself may fail, etc. Thus, it is often difficult to identify and isolate the fault and, therefore, troubleshoot or initiate the transition to the second processor.
Once a problem is detected, the current calls need to be transitioned to the second processor. Transition of the calls to the second processor requires complex software algorithms so that the calls are not dropped. Typically, when there is a failure between two processors using the heartbeat, the call transition is accomplished by determining that the first processor is no longer available to handle the call. Communications then have to occur between the first and second processor to transition the call to the second processor. The call is then continued on the second processor. All of these steps need to occur during the call. As a result, the process of transitioning and continuing a call is very difficult when using redundant processors communicating with a heartbeat.
Thus, there is a need for a method and apparatus that provides redundancy in packet networks. There is a need for a method and apparatus that performs load balancing in packet networks. There is a need for implementing robust packet-switching networks that can easily switch calls, are easily upgradeable, and easily reconfigured.